#ifndef SPL_OPERATORS
#define SPL_OPERATORS

SPLINL BOOL operator== (const POINT &pt1, const POINT &pt2)
{
    return pt1.x == pt2.x && pt1.y == pt2.y;
}

SPLINL BOOL operator!= (const POINT &pt1, const POINT &pt2)
{
    return pt1.x != pt2.x || pt1.y != pt2.y;
}

SPLINL BOOL operator== (const SIZE &sz1, const SIZE &sz2)
{
    return sz1.cx == sz2.cx && sz1.cy == sz2.cy;
}

SPLINL BOOL operator!= (const SIZE &sz1, const SIZE &sz2)
{
    return sz1.cx != sz2.cx || sz1.cy != sz2.cy;
}

SPLINL BOOL operator== (const RECT &rc1, const RECT &rc2)
{
    return
        rc1.left    == rc2.left     &&
        rc1.right   == rc2.right    &&
        rc1.top     == rc2.top      &&
        rc1.bottom  == rc2.bottom;
}

SPLINL BOOL operator!= (const RECT &rc1, const RECT &rc2)
{
    return
        rc1.left    != rc2.left     ||
        rc1.right   != rc2.right    ||
        rc1.top     != rc2.top      ||
        rc1.bottom  != rc2.bottom;
}

SPLINL BOOL operator== (
    const SPLib::Geom::Bounds &rc1,
    const SPLib::Geom::Bounds &rc2)
{
    return rc1.point == rc2.point && rc1.size == rc2.size;
}

SPLINL BOOL operator!= (
    const SPLib::Geom::Bounds &rc1,
    const SPLib::Geom::Bounds &rc2)
{
    return rc1.point != rc2.point || rc1.size != rc2.size;
}

#endif